dvipdfmx:fatal: Unable to find TFM file "lams1"
古い .dvi ファイル(1998年頃)を dvipdfm、 dvipdfmx でPDF変換しようとしたところ、lams1.tfm やフォントが見つからず失敗した。
code:memo
dvipdfm.exe *.dvi
dvipdfm:fatal: Could not open specified DVI (or XDV) file: *.dvi
No output PDF file written.
dvipdfm.exe .\ch-1.dvi
.\ch-1.dvi -> ch-1.pdf
[1
dvipdfm:fatal: Unable to find TFM file "lams1".
No output PDF file written.
code:memo
dvipdfmx.exe .\ch-1.dvi
.\ch-1.dvi -> ch-1.pdf
[1
dvipdfmx:fatal: Unable to find TFM file "lams1".
No output PDF file written.
必要な .tfm と .mf をCTANから取得し、TeX Live の texmf-local ツリーに手動で組み込むことで解決
解決した後に気付いたけど、こんなことが書いてあった。
The manuscript was typeset in LAMSTeX, and so the dvi files require the lams* fonts for viewing and printing. Here is the metafont source: fonts.tar.gz.
↓
原稿はLAMSTeXで組版されたため、dviファイルは表示と印刷にlams*フォントを必要とします。ここにメタフォントのソースがある: fonts.tar.gz.
実はfonts.tar.gzを入れば良かった説。fonts.tar.gzの中身を入れる場合でもtexmf-localにフォルダ作ったり、mktexlsrの実行は必要なのでとりあえず解決。
解決方法
前提
TeX Live 環境(例: Windows 版 D:\texlive)
dvipdfmx ch-1.dvi で lams1.tfm が見つからず失敗している状態
手順1: 必要な .tfm と .mf ファイルをCTANから取得
CTANから必要な .tfm と .mf ファイルを取得する
作業ディレクトリを作成して移動(任意)
.mf ファイルの取得(Metafont ソース)
.tfm ファイルの取得(TeX Font Metric)
手順2: TeX Live の texmf-local にファイルを配置
MFファイル → sourceディレクトリへ
$ mkdir D:\texlive\texmf-local\fonts\source\public\lamstex
$ move *.mf D:\texlive\texmf-local\fonts\source\public\lamstex\
TFMファイル → tfmディレクトリへ
code:memo
$ mkdir D:\texlive\texmf-local\fonts\tfm\public\lamstex
$ mv *.tfm D:\texlive\texmf-local\fonts\tfm\public\lamstex\
手順3: mktexlsr でファイルデータベースを更新
$ mktexlsr
code:memo
mktexlsr
mktexlsr: Updating D:/texlive/texmf-local/ls-R...
mktexlsr: Updated D:/texlive/texmf-local/ls-R.
mktexlsr: Updating D:/texlive/2023/texmf-config/ls-R...
mktexlsr: Updated D:/texlive/2023/texmf-config/ls-R.
mktexlsr: Updating D:/texlive/2023/texmf-var/ls-R...
mktexlsr: Updated D:/texlive/2023/texmf-var/ls-R.
mktexlsr: Updating D:/texlive/2023/texmf-dist/ls-R...
mktexlsr: Updated D:/texlive/2023/texmf-dist/ls-R.
mktexlsr: Done.
手順4: ファイルが見えるか確認(省略可)
$ kpsewhich lams1.tfm
$ kpsewhich lams1.mf
code:memo
kpsewhich lams1.tfm
d:/texlive/texmf-local/fonts/tfm/public/lamstex/lams1.tfm
kpsewhich lams1.mf
d:/texlive/texmf-local/fonts/source/public/lamstex/lams1.mf
手順5: PDFを生成
$ dvipdfmx ch-1.dvi
手順6: すべてのPDF出力実行
$ ls *.dvi | % { dvipdfmx $_.name }
ログ
ログはgistにメモ
参考